package highTech.generic;

public class GenericMethod4 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//1.����ֵ��������������Լ��
		Integer a=add(1, 2);
		Number b=add(3.5,4);
		Object c=add(4,"aa");
		
		swap(new String[]{"aa","bb"}, 0, 1);
		//3.ֻ���������Ͳ�����Ϊ���ͷ�����ʵ�ʲ��� ������int[]��������һ������
		//swap(new int[]{1,2,3}, 2, 1);
		swap(new Integer[]{1,2,3}, 2, 1);

	}

	//2.���ڷ��÷��͵����Ͳ���ļ�����Ӧ�����ڷ����������������η�֮����ڷ����ķ�������֮ǰ
	private static <T> T add(T x,T y){
		return null;
	}
	
	private static <T> void swap(T a[] ,int x,int y){
		T tmp=a[x];
		a[x]=a[y];
		a[y]=tmp;
	}
	
	//4.������Ӧ�÷���ʱ����ʹ��extends�޶����ڶ��巺��ʱҲ����ʹ��extends�޶���
	//���ҿ���ʹ��&ָ������߽�<V extends Serializable & cloneable> void method(){}
	
	//5.��ͨ���������췽������̬����������ʹ�÷��͡�������Ҳ�����?�����ͱ���������
	
	//6.Ҳ����ʹ�����ͱ�����ʾ�쳣����Ϊ������쳣���������ڷ�����throws�б��У����ǲ�������catch���Ӿ���
	/**
	 * private static <T extends Exception> sayHello() throws T{
	 *    try{
	 *    }catch(Exception e){
	 *    	throw (T)e;
	 *    }
	 * }
	 */
	
	//7.�ڷ����п���ͬʱ�ж�����Ͳ��� �ö��ŷָ�
	//public static <K,V> V getValue(K key){return map.get(key);}
	
	
	
	
}
